package initPkg

import (
	"fmt"

	"github.com/fsnotify/fsnotify"
	"github.com/spf13/viper"
	"go.uber.org/zap"

	"2106a-zg5/demo/user/user_srv/global"
)

func ViperInit() {
	LoggerInit()
	v := viper.New()
	//读取配置文件的路径由系统的环境变量决定的
	//v.AutomaticEnv()
	//envBool := v.GetString("SHOPCONFIG")
	//zap.S().Debug(envBool)
	////文件的路径如何设置
	//if envBool == "true" {
	//	v.SetConfigFile("./user_srv_debug.yaml")
	//} else {
	//	v.SetConfigFile("./user_srv_pro.yaml")
	//}

	//文件的路径如何设置
	v.SetConfigFile("./user_srv_debug.yaml")
	err := v.ReadInConfig()
	if err != nil {
		fmt.Println(err)
	}

	v.Unmarshal(&global.NacosConfig)
	//zap.S().Debug(global.NacosConfig)
	//如何实现动态追踪我们的配置文件修改
	go func() {
		//动态观察
		v.WatchConfig()
		//监听配置文件修改的时候
		v.OnConfigChange(func(e fsnotify.Event) {
			fmt.Println("Config file changed:", e.Name)
			_ = v.ReadInConfig() // 读取配置数据
			_ = v.Unmarshal(&global.NacosConfig)
			zap.S().Debug(global.NacosConfig)
		})
	}()

}
